突撃!道産子アプリの開発環境 パート1 【DOCOL 編】
はじめに
こんにちは。朝のコーヒーが欠かせない田宮です!
北海道で生まれたアプリがどのようにして作られているのかをご紹介していく企画がスタートします。
第1回目の今回は、有限会社たま / ISSHO が開発したiOS アプリ DOCOL、DOCOL Broadcastをご紹介します!
DOCOL とは
ここで、画面写真を交えて、具体的にアプリの内容を見ていきましょう。
また、DOCOL 公式サイトに詳しく使い方が載っていますので、そちらも合わせてご参照ください。
基本的な使い方としては大きく2つ。
- 仲間たちとお互いの位置情報を共有して楽しむ
- 誰かが「放送」している位置情報を受信して楽しむ
位置情報の共有
このような画面で、自分や友達が、どこにいる、どこにいたかが分かるアプリです。お互いの移動したルート・軌跡が表示されます。
まず、最初に誰かが位置情報共有グループを作成し、そこに友達を招待していきます。
共有リンクは自動生成されます。それをSNSなどで参加してもらいたい人達に送ります。
招待された友達は、事前にアプリをインストールしておけば、リンクに飛ぶだけで、自動的にグループに参加できます。参加後は、地図上でお互いの位置を確認できます。
アプリ独自のチャット画面で、簡単に連絡をとりあうことも出来ます。
アプリを閉じていても、バックグラウンドで位置情報が更新されるため、アプリを常に開いておく必要がありません。
アカウントという概念がなく、グループを削除すれば情報が消えます。簡単・安心・便利が実現されていますね!
DOCOL Broadcast
こちらは、DOCOL の姉妹アプリで、多くの人に自分の位置情報を「放送」するアプリです。
画面は DOCOL と似ていますが、「放送」という名の通り、情報伝達は基本的に一方通行です。放送している側から、誰が受信しているかを知ることは出来ません。また、送信側から全体にメッセージをおくることは出来ますが、受信側からメッセージを送ることは出来ません。
不特定多数の人に、位置情報を送信したい時などに、活躍しそうですね。
デベロッパー紹介
今回のアプリは、札幌市の有限会社たま代表・松浦伸也さんが中心となって開発されました。有限会社たまは、デザイン制作とアプリ制作を行っている会社です。アプリ制作に関しては、ISSHOというブランドで活動されています。
たまの詳しい紹介については、キタゴエ様にて詳しくレポートされていますので、ご参照下さい。
有限会社たまに行ってみた―元・自衛官が開発したナビゲーションアプリ「HUD ManiaX」がリニューアルリリース | キタゴエ
※今回の記事中の写真の一部は、許可を頂き、キタゴエ様の上記記事からお借りして掲載しています。
作者・松浦さん から DOCOL の紹介
ー どのようなアプリか教えて下さい。
松浦さん(以下敬称略):DOCOL は友達と現在地をリアルタイムで共有するアプリです。
ー おお、便利そうですね!
松浦: また、兄弟アプリとして、DOCOL Broadcast があります。こちらは、位置情報をリアルタイムに放送する目的に特化したアプリです。受信は DOCOL の方で行います。こうした位置情報の「リアルタイム無料放送」ができるアプリは、たぶん世界初で、現在のところ唯一無二だと思います。
ー ありがとうございます!
DOCOLのウリ
ー DOCOLのココが面白い!という部分やウリを教えて下さい。
松浦: DOCOL は待ち合わせやツーリングなどで、お互いの位置をリアルタイムに確認できるのがウリです。
ー なるほど、それはみんなで楽しめますね!
松浦: また、DOCOL を利用中は、弊社の簡易カーナビアプリなびすけの地図上にも、自動で友達の位置を表示できます。カーナビと友達ナビを融合を実現しました。
ー なびすけは老舗のカーナビアプリですね。多くの人が使っていますし、利便性が高まりますね。
松浦: はい!また、DOCOL Broadcast を使って、世界中の交通を、基本無料で可視化していきたいと思っています。たとえば、街で流れる「いーしやーきいもー」の声を頼りに販売車を見つけ、追いかけて購入、などという時代を、そろそろ終わりにしたいです。
ー なるほど、DOCOL Broadcast で位置情報を流せば、欲しい人は自然と集まってきますね!
開発のストーリーと開発環境
ネーミング
ー ネーミングの由来を教えてください。
松浦: どこに居る?どこる。
楽しかった点・苦労した点
ー 開発していて楽しかったことを教えて下さい
松浦: ツーリングしながら DOCOL を使う実地テスト中に、1台のバイクが故障しました。僕は実際にツーリングには参加せず、事務所でデバッグを行っていたのですが、修理して、合流するまでの流れが DOCOL を通じて見ることができました。これは楽しかったです。病気療養中などで外に出られない時でも、ツーリング等に参加した気分になれるなど、使い方次第で、新しい体験がいろいろ出来ると思います。
ー 開発していて、苦労した点を教えて下さい。
松浦: 地下など、位置情報がとりずらい場所でのチューニングは苦労しました。この調整はまだまだ続きそうです。とりあえず、札幌の地下鉄エリアでのチューニングは出来た感じです。
技術的な工夫
ー 技術的に工夫された点を教えて下さい。
松浦: URLスキームを含んだURLは、SNSアプリに貼られた時、リンクとして機能しないことが多いのです。対策として、リダイレクトページを作成しました。また、誰でも簡単にグループに参加できる仕組みはかなり頑張りましたw。
位置情報の調整は徹底的に行っているのですが、これが凄く奥が深くて面白いのです。取得したデータは、アナログデータみたいなもので、位置情報を誤認識することも多いのですが、僕からするとむしろ面白いです。データの平均化など様々な工夫をしています。
ー 位置情報の調整というのは、具体的にどのようなものなのでしょうか?
松浦: GPSを受信出来る空が見えるような場所の場合はほとんど問題がありません。ただしトンネルに入ったり、ビル群の谷間に入ったりすると極端に精度が落ちたり、移動したWi-Fiや携帯電話基地局をつかむと思いもしないような極端な場所のズレが発生したりします。
このようなiPhoneが誤認するケースを確認して、コードでまるめこむ地味な作業を繰り返します。
GPSを受信出来ない場所の場合は、地下鉄に乗って、iPhoneを数台で位置情報を取ったり、地下街や屋内を歩きながらテストをします。必要なら地下鉄車内でコードの修正をしたりします。端から見るとかなり危ない人ですねw。この場合は主に携帯電話基地局とWi-Fiによる位置情報測位となるので、基地局の移動によって場所情報がめちゃくちゃだったりかなりの苦労をしています。
最高精度は誤差65メートル程度ですが、これはGPS各電波の3点測量だと思います。詳しいことは公開されていないのでとにかく足で稼ぐ感じでチューニングしています。
開発ツール
ー 開発ツールを教えて下さい。
松浦: 主にこうしたツールを使っています。
- コーディング
- デザイン
- コード管理
- Bitbucket
- 手動バックアップと併用しています。
- タスク・スケジュール管理
- メモアプリ
- Xcode の TODO
- Bitbucket の TODO (一部)
- コミュニケーションツール
- メッセージアプリ
- Apple純正のものですが、意外と便利です。ファイル転送やグループ作成もできます。
開発体制
ー DOCOLの開発体制を教えて下さい。
松浦: フロントエンドとアプリは札幌で開発し、バックエンドは沖縄で開発しています。また、必要に応じて外部の方のご協力を頂いています。
ー そうだったんですね!沖縄のデベロッパーの方とは?
松浦: 個人でアプリ開発をされている僕のプログラムの先生です。ほとんどのプログラム言語を使いこなし、Xcodeでの開発もiPhoneの開発環境が出来て面白いよ〜と紹介したところ、一瞬で自分のスキルを越えて行かれました。名前としては公開できないので秘密ってことでw
開発の知見
ー 開発の中で得られた知見などについて教えて下さい
松浦: 基本的にプログラマとしてのスキルはペラペラなので、毎日が新鮮な驚きです。DevSapの皆さんに助けてもらったり先生に教えてもらったりしながら開発しています。
一日の流れ
ー 開発日の標準的な一日の流れを教えて下さい。
松浦: 基本的に事務所で黙々と作業を行っています。ただ、位置情報の動作検証をする際は、地下鉄に乗ったり、車で移動したりしながら、地道に精度を調整しています。これが地味に大変ですw。最近は、バス会社さんの協力の下、バスの可視化の打ち合わせをする時間も多くなってきました。
これまでの開発を振り返って
ー ここまでの開発の道のりを教えて下さい。
松浦: 企画自体はずーっとやりたいと思っていたことで、DOCOLは初代なびすけのころに友達ナビとして存在していた機能を焼き直ししたものです。位置情報とリアルタイムイベント情報をオープンにするという発想は初代なびすけのころから一環しており、やっと少しずつ形にできるようになってきたということになります。
具体的にプロジェクトを開始したのは2014年の冬に北海道ベンチャーサミットに参加するためにろけなうを作成したところから始まりました。ここから現在展開中のサービスを全部繋げて、リアルタイムナビゲーションの基盤をつくることを明確な目的としました。
- ろけなう(全位置情報のデータの統括管理システムとしてバックエンドを統合管理する。アプリケーションはすべてのリアルタイム情報のブラウザとする。同時にオープンデータの基盤を整備する
- DOCOLシリーズ(リアルタイム位置情報の入出力先として利用する。世界の全交通を可視化する基盤を作る。)
- なびすけ(カーナビ上にリアルタイム情報を表示するシンプルで実用性のある今までに無いカーナビの形のデモを主目的とする。将来的には他のカーナビメーカーさんにデータを提供してもらったり、逆に利用してもらったりしたい。)
- HUDManiaX(リアルタイム位置情報をエンターテイメントとして徹底的にバカに使う。速度違反をしたら撃墜されたり、友達を見つけたらレーダーに表示したり)
という役割分担をすることにしました。なので企画はiPhone3GSの時代から現在もずっと進化しつづけているということになります。DOCOLに限定すればフロントエンドバックエンド共に2015年の春頃から開発をしています。動作検証は位置情報に関しては3ヶ月ほど試しましたが、これもなびすけのころからずーっと進化を続けています。
今後の構想
ー 今後の構想について教えて下さい。
松浦: 4月を目処に DOCOL Broadcast のデータを、オープンデータとして、ろけなう 経由で、JSONで自由に利用出来る環境を構築予定です。
ー 面白そうですね!もっと知りたいです!
松浦: アプリの開発者が位置情報とリアルタイム情報をろけなうサーバにアップしたり、必要な情報をJSON形式でダウンロードしたり出来るようになります。
たとえば、現在進行中のバスの現在地をDOCOL Broadcastで放送すると、その情報は一括してろけなうサーバから取得できるようになるため、たとえば第三者がバスのリアルタイム情報を利用したサービスを作れるようになります。
石焼き芋だけの放送データをあつめて石焼き芋アプリを作ったりすることが可能になります。
特にバスのリアルタイム位置情報の放送はいろんなところで始まっていますが、結局データは再利用される形で公開されていません。これを再利用できるようにすることで、たとえば子供や老人専用のアプリ開発を行えるようになり、バス会社はより細かいサービスを第三者の力を借りて無償で行うことが可能になります。
また、DOCOL Broadcast で、新機能を追加予定です。Twitterを仮想的なチャットとして利用するものです。フォロアーが発言すると、文字数が余っていたら、招待URL埋め込んだり自動でするように作ってます。放送する人は、少しでも多くの人に見てもらいたいはずなので、Twitterとは相性が良いとおもって試してみる感じです。
また、先のバージョンでは、予定ルートや、目的地を知らせる機能も追加し予定です。この実装により、バス路線もバス停もカバー出来る予定です。
最後に一言!
ー 最後に、この記事をご覧になっている皆さんに一言お願いします!
松浦: 無料で簡単なので是非使ってみてください。車や交通機関など移動車両を利用する業者さんも管理などに使って欲しいです。移動販売業の方なども、ホームページに現在地リンクのような形で簡単に現在地を放送できるので、試してみて欲しいです。最近は良い物を作っても、広める為の手段が限定されているので、メディアの方も是非声をかけて欲しいです。
ー ありがとうございました!
まとめ
札幌と沖縄という、日本の北と南の端で開発を行っていたという事を知り、ビックリしました。クラスメソッドも場所にとらわれない開発を標榜し、実践していますが、この辺のマインドは、今回の有限会社たまの松浦さんをはじめ、北海道の開発者の方々と、似ているのではないかと感じています。
アプリは日々進化を続けており、スピード感を保ちつつ、日々の開発が継続されているのには、頭が下がります。
次回記事の企画も進行中です。お楽しみに!